Dynamic Multithreaded Algorithms A Minicourse on Dynamic Multithreaded Algorithms
نویسندگان
چکیده
This tutorial teaches dynamic multithreaded algorithms using a Cilk-like [11, 8, 10] model. The material was taught in the MIT undergraduate class 6.046 Introduction to Algorithms as two 80-minute lectures. The style of the lecture notes follows that of the textbook by Cormen, Leiserson, Rivest, and Stein [7], but the pseudocode from that textbook has been “Cilkified” to allow it to describe multithreaded algorithms. The first lecture teaches the basics behind multithreading, including defining the measures of work and critical-path length. It culminates in the greedy scheduling theorem due to Graham and Brent [9, 6]. The second lecture shows how parallel applications, including matrix multiplication and sorting, can be analyzed using divide-and-conquer recurrences. 1 Dynamic multithreaded programming As multiprocessor systems have become increasingly available, interest has grown in parallel programming. Multithreaded programming is a programming paradigm in which a single program is broken into multiple threads of control which interact to solve a single problem. These notes provide an introduction to the analysis of “dynamic” multithreaded algorithms, where threads can be created and destroyed as easily as an ordinary subroutine can be called and return. 1.1 Model Our model of dynamic multithreaded computation is based on the procedure abstraction found in virtually any programming language. As an example, the procedure FIB gives a multithreaded algorithm for computing the Fibonacci numbers:1 Support was provided in part by the Defense Advanced Research Projects Agency (DARPA) under Grant F3060297-1-0270, by the National Science Foundation under Grants EIA-9975036 and ACI-0324974, and by the SingaporeMIT Alliance. 1This algorithm is a terrible way to compute Fibonacci numbers, since it runs in exponential time when logarithmic methods are known [7, pp. 902–903], but it serves as a good didactic example.
منابع مشابه
A Minicourse on Dynamic Multithreaded Algorithms
This tutorial teaches dynamic multithreaded algorithms using a Cilk-like [11, 8, 10] model. The material was taught in the MIT undergraduate class 6.046 Introduction to Algorithms as two 80-minute lectures. The style of the lecture notes follows that of the textbook by Cormen, Leiserson, Rivest, and Stein [7], but the pseudocode from that textbook has been “Cilkified” to allow it to describe mu...
متن کاملA Minicourse on Multithreaded Programming
These notes contain two lectures that teach multithreaded algorithms using a Cilk like model These lectures were designed for the latter part of the MIT undergraduate class Introduction to Algorithms The style of the lecture notes follows that of the textbook by Cormen Leiserson and Rivest but the pseudocode from that textbook has been Cilki ed to allow it to describe multithreaded algo rithms ...
متن کاملDesign and Evaluation of Dynamic Load Balancing Schemes under a Fine-grain Multithreaded Execution Model
The evolution of computer systems based on fine-grain multithreaded program execution models introduces both unique opportunities and tough challenges for the support of dynamic load balancing. Although load balancing is an active research topic in the distributed computing field, there is still a lack of a detailed study of the different dynamic load balancing strategies under a fine-grain mul...
متن کاملMultithreaded Constraint Programming and Applications
MULTITHREADED CONSTRAINT PROGRAMMING AND APPLICATIONS by Fabian Zabatta Adviser: Professor Kenneth McAloon Constraint programming is a powerful and robust software technology for modeling and solving difficult combinatorial problems. However, as problems grow larger in scale and complexity, they become increasingly difficult to solve and their execution times can exhibit inordinate growth. One ...
متن کاملRegular Symbolic Analysis of Dynamic Networks of Pushdown Systems
We introduce two abstract models for multithreaded programs based on dynamic networks of pushdown systems. We address the problem of symbolic reachability analysis for these models. More precisely, we consider the problem of computing effective representations of their reachability sets using finite-state automata. We show that, while forward reachability sets are not regular in general, backwa...
متن کامل